import sys
import os
import winreg
import re

def getSysNetFramework():
	##https://www.cnblogs.com/sunyang945/p/7900957.html
	netFramework=None
	##检测 .Net Framework 2.0
	try:
		key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"Software\Microsoft\NET Framework Setup\NDP\v2.0.50727")
		value, type = winreg.QueryValueEx(key, "Version")
		netFramework=value
	except:
		netFramework=None

	##检测 .Net Framework 3.5
	try:
		key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"Software\Microsoft\NET Framework Setup\NDP\v3.5")
		value, type = winreg.QueryValueEx(key, "Version")
		netFramework=value
	except:
		netFramework=None
	##检测 .Net Framework 4.0   
	try:
		key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"Software\Microsoft\NET Framework Setup\NDP\v4\Full")
		value, type = winreg.QueryValueEx(key, "Version")			
		netFramework=value
				
	except:
		netFramework=None
	

	if netFramework:    
		print(".Net Framework 版本："+str(netFramework))
	else:
		print("没有安装.Net Framework")
	return netFramework;
#num=input("请输入一个数字：")
#print(num)
###
###安装
def installFramework():
	netFrameworkFilename="framework.exe"
	pyfile=os.path.join( os.getcwd(),netFrameworkFilename)
	if os.path.isfile(pyfile):
		print('文件存在，准备安装:'+netFrameworkFilename)
		os.system(pyfile)#执行文件
		if getSysNetFramework()==None:
			print('未安装完成.......')
		else:
			print('已安装完成')
	else:
		print("文件不存在，请自行安装:"+netFrameworkFilename)
###执行文件
def execProgram(exe):
	exefile=os.path.join( os.getcwd(),exe)
	if os.path.isfile(exefile):
		os.popen(exefile)
		print('完成。请关闭dos窗口')
	else:
		print('可执行文件不存在')


##-netframework 4.5
##-exec abc.exe

if len(sys.argv)>=2:
	req_v= sys.argv[2]
	req_exe=sys.argv[4]
	v= getSysNetFramework()
	v=str(v)
	l=re.findall('(\d+.\d+)',v)
	if float(l[0])<float(req_v):
		print('系统版本与需求版本不一致，准备安装')
		installFramework();
	v= getSysNetFramework()	
	v=str(v)
	l=re.findall('(\d+.\d+)',v)
	if float(l[0])<float(req_v):
		print('系统版本低于需求版本')
	else:
		execProgram(req_exe);
else:
	print('缺少参数')

#os._exit(1)